package cn.edu.dz.tcpdemo;

import java.io.*;
import java.net.Socket;
import java.util.Scanner;

/**
 * @author donglin
 * @Title:
 * @类名: ClientThread
 * @date 2020/6/3
 */
public class ClientThread extends Thread{
    //属性
    private Socket socket;

    public ClientThread() {
        super("客户端：");
    }

    @Override
    public void run() {

        try {
            //初始化客户端socket
            //第一个参数是服务器的主机名或者IP地址：localhost表示当前主机是服务器；
            //127.0.0.1 表示当前主机
            //具体的ip地址：比如：172.16.130.2
            //第二个参数：指定端口号
            socket=new Socket("127.0.0.1",9980);
            ////////////////////////////////////////发送消息//////////////////////////////////
            //获取socket的输出流对象
            BufferedWriter bf=new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
          while (true){
              Scanner sc=new Scanner(System.in);
              //输出内容到网络，发送服务器
              String strSendMsg=sc.next();
              bf.write(this.getName()+strSendMsg);
              System.out.println(Thread.currentThread().getName()+strSendMsg);
              //一般输出流将换行或者回车作为一行内容的结束，所以需要在发送之前输出一个换行符或者回车符表示一行内容结束
              //然后输出流将内容发送到网络给服务器
              bf.write("\n");
              bf.flush();
              ////////////////////////////////////////接收消息//////////////////////////////////
              //信息接收
              BufferedReader br=new BufferedReader(new InputStreamReader(socket.getInputStream()));
              //读取服务器发送的消息
              String strSmg=br.readLine();
              System.out.println(strSmg);
          }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
